package jschool.modelos;

import javax.swing.table.AbstractTableModel;

import jschool.entidades.Horario;
import jschool.manejadores.ManejadorDeHorario;

public class ModeloHorario extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] encabezado = null;
	private static ModeloHorario instancia = null;
	private ManejadorDeHorario manejadorDeHorario = null;
	private Horario horario = null;

	public ModeloHorario() {
		encabezado = new String[] { "Id_Curso", "Id_Materia", "Dias", "Hora",
				"Descripcion" };
		manejadorDeHorario = ManejadorDeHorario.getInstancia();
	}

	public static ModeloHorario getInstancia() {
		if (instancia == null) {
			instancia = new ModeloHorario();
		}
		return instancia;
	}

	public String getColumnName(int posicion) {
		return encabezado[posicion];
	}

	@Override
	public int getColumnCount() {

		return encabezado.length;
	}

	@Override
	public int getRowCount() {

		return manejadorDeHorario.getHorario().size();
	}

	@Override
	public Object getValueAt(int fila, int col) {
		horario = manejadorDeHorario.getHorario().get(fila);
		String retorno = "";
		switch (col) {
		case 0:
			retorno = String.valueOf(horario.getIdCurso());

			break;
		case 1:
			retorno = String.valueOf(horario.getIdMateria());
			break;
		case 2:
			retorno = horario.getDias();
			break;

		case 3:
			retorno = horario.getHora();
			break;

		case 4:
			retorno = horario.getDescripcion();
			break;
		}

		return retorno;
	}

	public void setValueAt(Object valor, int fila, int col) {
		horario = manejadorDeHorario.getHorario().get(fila);
		switch (col) {

		case 2:
			horario.setDias((String) valor);
			break;

		case 3:
			horario.setHora((String) valor);
			break;

		case 4:
			horario.setDescripcion((String) valor);
			break;

		}

	}

}
